from PIL import Image
import sys

def convert_image(input_path, output_path, output_format, new_width=None, new_height=None):
    try:
        # Открываем изображение
        with Image.open(input_path) as img:
            # Изменяем размер изображения, если указаны новые размеры
            if new_width and new_height:
                img = img.resize((new_width, new_height), Image.ANTIALIAS)
            
            # Сохраняем изображение в указанном формате
            img.save(output_path, format=output_format)
        print(f"Изображение успешно конвертировано в {output_format} и изменено по размеру.")
    except Exception as e:
        print(f"Ошибка при конвертации изображения: {e}")

if __name__ == "__main__":
    # Проверяем, переданы ли аргументы командной строки
    if len(sys.argv) < 4 or len(sys.argv) > 6:
        print("Использование: python image_converter.py <input_path> <output_path> <output_format> [<new_width> <new_height>]")
    else:
        input_path = sys.argv[1]
        output_path = sys.argv[2]
        output_format = sys.argv[3].upper()  # Приводим к верхнему регистру
        
        # Определяем новые размеры, если они указаны
        new_width = None
        new_height = None
        if len(sys.argv) == 6:
            new_width = int(sys.argv[4])
            new_height = int(sys.argv[5])
        
        convert_image(input_path, output_path, output_format, new_width, new_height)